﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>SetTitleMatchMode</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/commands.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
</head>
<body>

<h1>SetTitleMatchMode</h1>

<p>设置在例如 <a href="WinWait.htm">WinWait</a> 这样的命令中，参数 WinTitle 的匹配模式。</p>

<p class="CommandSyntax">SetTitleMatchMode, MatchMode<br>
    SetTitleMatchMode, Fast|Slow</p>
<h3>参数 </h3>
<table border="1" width="100%" cellspacing="0" cellpadding="3" bordercolor="#C0C0C0">
  <tr> 
    <td width="15%"><p>MatchMode</p>    </td>
    <td width="85%"><p>使用下面所示的一个数字或单词 RegEx ：</p>
      <p><strong>1</strong> ：匹配由指定的 <em>WinTitle</em> 开始的窗口标题。<br>
        <strong>2</strong> ：匹配包含指定的 <em>WinTitle </em> 的窗口标题。<br>
      <strong>3</strong> ：精确匹配。窗口的标题必须完全和 <em>WinTitle</em> 一样。</p>
      <p>        <strong><a name="RegEx"></a>RegEx</strong>（v1.0.45+）：切换参数 <em>WinTitle</em> ，<em>WinText</em>，<em>ExcludeTitle</em> 以及 <em>ExcludeText</em> 为 <a href="../misc/RegEx-QuickRef.htm">正则表达式</a> 匹配模式。当使用正则表达式的时候，不用在正则表达式的外面加引号。例如：<a href="WinActivate.htm">WinActivate Untitled.*Notepad</a> 。RegEx 同样适用于 <a href="../LastFoundWindow.htm#group">ahk_group</a> 和 <a href="../LastFoundWindow.htm#class">ahk_class</a> 。例如 <em>ahk_class IEFrame</em> 匹配一个类名中任意位置包含 <em>IEFrame</em> 的窗口（这是因为默认情况下，正则表达式会在目标字符串中的 <em>任意位置</em> 搜索匹配值）。注意：对 <em>WinText</em> 参数来说，正则表达式会独立的匹配每个文本元素（例如每个控件的文本），因此，正则表达式的匹配范围不能横跨多个文本元素。</p>
      <p>上面的模式设置同样影响 <em>ExcludeTitle</em> 参数。例如，模式 3 要求被排除的窗口的标题精确匹配 <em>ExcludeTitle</em> 中指定的名称。</p>
    </td>
  </tr>
  <tr>
    <td>Fast|Slow</td>
    <td><p><strong>Fast</strong>：快速模式，这个是默认值。使用 <em>Fast</em> 的性能比使用 <em>Slow</em> 要好得多，但是对于窗口操作类命令中的 <em>WinText</em> 参数，某些类型的窗口中的文本元素可能不能被检测到。</p>
      <p><strong>Slow</strong>：慢速模式，速度会比较慢，但是 <em>WinText</em> 可以匹配到窗口中所有可能的文本元素。Window Spy 中显示在“slow Hidden Text”部分的文本都要求使用慢速模式来匹配。</p></td>
  </tr>
</table>

<h3>注意</h3>
<p>这个命令影响所有的窗口操作类命令，例如 <a href="IfWinExist.htm">IfWinExist</a> 和 <a href="WinActivate.htm">WinActivate</a> 。</p>
<p>如果未指定，默认使用 1 和 <em>fast</em> 。</p>
<p>一般来说，只有在用窗口标题或者快速模式的 <em>WinText</em> 参数搜索不到窗口的时候才使用慢速模式。因为当任一个窗口正忙或者无响应的时候慢速模式会变得相当的慢。</p>
<p>AutoHotkey 自带的 Window Spy 将需要使用慢速模式检测的文本元素放在一个独立的区域中显示，这样就可以很容易的决定是否使用慢速模式。</p>
<p>如果你要同时修改两个参数，可以使用这个命令两次：<br>
  SetTitleMatchMode, 2<br>
  SetTitleMatchMode, slow</p>
<p>内置变量 <strong>A_TitleMatchMode</strong> 和 <strong>A_TitleMatchModeSpeed</strong> 存储了当前的设置。</p>
<p>与当前的 TitleMatchMode 设置无关，<em>WinTitle</em> ，<em>WinText</em> ，<em>ExcludeTitle</em> 以及 <em>ExcludeText </em> 都是大小写敏感的。但是有一个例外，就是正则表达式中 <a href="RegExMatch.htm#Options">大小写敏感设置</a> ，例如：<em><strong>i)</strong>untitled - notepad</em></p>
<p>每一个新运行的 <a href="../misc/Threads.htm">Thread/线程</a>（例如一个 <a href="../Hotkeys.htm">hotkey/热键</a>，<a href="Menu.htm">custom menu item/自定义菜单</a>，或 <a href="SetTimer.htm">timed/定时器</a> 事件）会将该命令的设置重置为默认值。要更改该命令的默认值，可以将命令放在脚本的自动执行区域（脚本的顶部）。</p>
<h3>相关命令</h3>
<p><a href="SetWinDelay.htm">SetWinDelay</a>, <a href="IfWinExist.htm">IfWinExist</a>,<a href="WinActivate.htm"> WinActivate</a>, <a href="RegExMatch.htm">RegExMatch()</a> </p>
<h3>示例</h3>
<pre class="NoIndent">SetTitleMatchMode 2
<em>; 或者：</em>
SetTitleMatchMode RegEx

SetTitleMatchMode Slow  <em>; Slow/Fast 可以在其它的模式之外单独进行设置。</em></pre>

</body>
</html>
